home *** CD-ROM | disk | FTP | other *** search
/ PC-Blue - MS DOS Public Domain Library / PC-Blue MS-DOS Public Domain Library - NYACC.iso / vol025 / pretty.bas < prev   
Encoding:
BASIC Source File  |  1987-01-11  |  1.8 KB  |  44 lines

  1. 1 CLS:KEY OFF
  2. 2 LOCATE 1,25:PRINT "PRETTY.BAS"
  3. 3 PRINT
  4. 10 REM 'PRETTY PRINT' PROGRAMS FOR THE IBM PC BASICA
  5. 20 REM AUTHOR: WILLARD A BROWN, WESTERN WASHINGTON UNIVERSITY
  6. 30 REM COL = TAB VALUE FOR LINES ASSOCIATED WITH A STRUCTURE GROUP
  7. 40 REM IOLN$ = INPUT/OUTPUT LINE OF PROGRAM
  8. 50 REM OUTPUT FROM THIS PROGRAM WILL GO TO A FILE CALLED FILENAME.TEM
  9. 60 REM CARE MUST BE TAKEN TO AVOID EMBEDDING WEND AND NEXT IN IDENTIFIERS
  10. 64 PRINT"THIS IS A PROGRAM FOR STRUCTURING BASIC PROGRAM LISTINGS":PRINT
  11. 70 INPUT "TYPE  A FILENAME WITHOUT  .BAS (UP TO EIGHT CHARACTERS):";FILE$
  12. 80 FILEIN$=FILE$+".BAS"
  13. 90 ON ERROR GOTO 330
  14. 100 OPEN FILEIN$ FOR INPUT AS #3
  15. 110 FOR DO=(NOT EOF(3)) TO -1  'bad news
  16. 120   GOODFILE=-1
  17. 130   FILEOUT$=FILE$+".TEM"
  18. 140   OPEN FILEOUT$ FOR OUTPUT AS #2
  19. 150   LINENO$="      "
  20. 160   WHILE NOT EOF(3)
  21. 170     LINE INPUT #3, IOLN$
  22. 180     I=1
  23. 190     WHILE MID$(IOLN$,I,1)<>" " : I=I+1:WEND 'FIND END OF LINE# FIELD
  24. 200     LSET LINENO$=LEFT$(IOLN$,I-1) 'LEFT JUSTIFY LINE #
  25. 210     IOLN$=RIGHT$(IOLN$,LEN(IOLN$)-I) ' STRIP OFF LINENUMBERS
  26. 220     WHILE LEFT$(IOLN$,1)= " ":IOLN$=RIGHT$(IOLN$,LEN(IOLN$)-1):WEND
  27. 230     IF LEFT$(IOLN$,4)="FOR  " OR LEFT$(IOLN$,6)="WHILE " THEN COL=COL+2
  28. 240     IF LEFT$(IOLN$,4)="FOR  " AND INSTR(1,IOLN$,"NEXT")>0 THEN COL=COL-2
  29. 250     IF LEFT$(IOLN$,4)="WEND" OR LEFT$(IOLN$,4)="NEXT" THEN COL=COL-2
  30. 260     IF LEFT$(IOLN$,6)="WHILE " AND INSTR(1,IOLN$,"WEND")>0 THEN COL=COL-2
  31. 270     OUTL$=LINENO$+SPACE$(INSET)+IOLN$
  32. 280     INSET=COL
  33. 290     PRINT#2 , OUTL$
  34. 300     PRINT LINENO$;
  35. 310     WEND
  36. 320  NEXT DO
  37. 330 IF GOODFILE=0 THEN PRINT "EMPTY FILE SUBMITTED"
  38. 2000 CLOSE
  39.  , OUTL$
  40. 300     PRINT LINENO$;
  41. 310     WEND
  42. 320  NEXT DO
  43. 330 IF GOODFILE=0 THEN PRINT "EMPTY FILE SUBMITTED"
  44. 2000 CLO